package com.lino.design;

import com.lino.design.ceiling.LevelOneCeiling;
import com.lino.design.ceiling.LevelTwoCeiling;
import com.lino.design.coat.DuluxCoat;
import com.lino.design.coat.LiBangCoat;
import com.lino.design.floor.ShengXiangFloor;
import com.lino.design.tile.DongPengTile;
import com.lino.design.tile.MarcoPoloTile;

/**
 * @description: 建造者模式
 * @author: lingjian
 * @createDate: 2022/12/19 14:39
 */
public class Builder {

    /**
     * 豪华欧式：二级吊顶、多乐士涂料、圣像地板
     *
     * @param area 面积
     * @return 装修包
     */
    public IMenu levelOne(Double area) {
        return new DecorationPackageMenu(area, "豪华欧式")
                .appendCeiling(new LevelTwoCeiling())
                .appendCoat(new DuluxCoat())
                .appendFloor(new ShengXiangFloor());
    }

    /**
     * 轻奢田园：二级吊顶、立邦涂料、马可波罗地砖
     *
     * @param area 面积
     * @return 装修包
     */
    public IMenu levelTwo(Double area) {
        return new DecorationPackageMenu(area, "轻奢田园")
                .appendCeiling(new LevelTwoCeiling())
                .appendCoat(new LiBangCoat())
                .appendFloor(new MarcoPoloTile());
    }

    /**
     * 豪华欧式：一级吊顶、立邦涂料、东鹏地砖
     *
     * @param area 面积
     * @return 装修包
     */
    public IMenu levelThree(Double area) {
        return new DecorationPackageMenu(area, "现代简约")
                .appendCeiling(new LevelOneCeiling())
                .appendCoat(new LiBangCoat())
                .appendFloor(new DongPengTile());
    }
}
